home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr36
/
mapl0301.zip
/
MBS40301.MRG
< prev
next >
Wrap
Text File
|
1993-04-13
|
91KB
|
2,178 lines
* ------------[ BLED merge (c) Ken Goosens ]-------------
* Merge this against E:\RBBS\STOCK\RBBSSUB4.BAS to produce E:\RBBS\CHAT\RBBSSUB4.BAS
* E:\RBBS\STOCK\RBBSSUB4.BAS: Date 6-20-1992 Size 120885 bytes
* ------------[ Created 03-01-1993 19:15:18 ]------------
* REPLACING old line(s) by new
' $linesize:132
' $title: 'RBBSSUB4.BAS 17.4, Copyright 1986 - 92 by D. Thomas Mack'
' Copyright 1992 by D. Thomas Mack, all rights reserved.
' Name ...............: RBBSSUB4.BAS
' First Released .....: June 21, 1992
' Subsequent Releases.:
' Copyright ..........: 1986 - 1992
' Purpose.............: The Remote Bulletin Board System for the IBM PC,
' RBBS-PC.BAS utilizes a lot of common subroutines. Those that do not
' require error trapping are incorporated within RBBSSUB 2-5 as
' separately callable subroutines in order to free up as much
' code as possible within the 64K code segment used by RBBS-PC.BAS.
' Parameters..........: Most parameters are passed via a COMMON statement.
'
' Subroutine Line Function of Subroutine
' Name Number
' AnyBut 59760 Determine where a "word" begins
' AskUsers 64003 Ask users questions based on a script and save answers
' AskMore 59858 Check whether screen full
' AutoPage 60300 Check whether to notify sysop caller is on
' BadFileChar 59800 Check file name for bad character
' Bracket 59960 Puts strings around a substring
' BufFile 58400 Write a file to the user quickly
' BufString 58300 Write a string with imbedded CR/LF to the user quickly
' CheckColor 59930 Highlighting based on search string
' CmndToggle 64635 Processes user command to T)oggle preferences
* ------[ first line different ]------
' CmndSysopXfer 64640 Sysop function to change Xfer count
' ColorDir 59920 Adds colorization to FMS directory entry
' ColorPrompt 59940 Colorizes prompts
' CompDate 59880+ Produces a computational data from YY, MM, DD
' ConfMail 59850 Check conference mail waiting
' ConvertDir 58950 Checks for U & A (shorthand) and converts appropriately
' PackDate 59201 Compress date in string format to 2 characters
' EofComm 60000 Determine whether any chars in comm port buffer
' ExpireDate 59890 Calculate registration expiration date
' FakeXRpt 62650 Write out file transfer report for protocols that don't
' FindEnd 58770 Find where a "word" ends
' FindFile 58790 Determine whether a file exists without opening it
' FindLast 58600 Find last occurence of a string
' FMS 58200 Search the upload management system for entries
' GetAll 59780 Get list of all directories to display
' GetDirs 58895 Prompts for directories for file list/new/search cmds
' GetMsgAttr 62530 Restore attributes of original message
' GetYMD 59204 Pulls YY, MM, or DD from a 2 byte stored date
' GlobalSrchRepl 60100 Global search and replace
' LogPDown 59400 Records download in private directory
' MarkTime 60200 Give visual feedback during lengthy process
' MetaGSR 60130 Meta statement global search and replace
' MsgImport 59698 Allow local user to import a text file to a message
' Muzak 59100 Play musical themes for different RBBS functions
' NewPassword 60668 Get a new password
' Protocol 62600 Determine if external protocols are available
' PutMsgAttr 62520 Save attributes of original message
' Remove 58210 Remove characters from within strings
' RotorsDir 58700 Searches for a file using list of subdirs
' RptTime 62540 Report date/time and time on
' SearchArray 58190 Check for the occurance of a string in an array
' SetEcho 59600 Set RBBS properly for who is to echo
' SetHiLite 59934 Set user preference on highlighting
' SetGraphic 59980 Sets graphic preference for text file display
' SetNewUserDef 64645 Sets new user defaults
' SmartText 58250 Process SMART TEXT control strings
' SubMenu 59500 Processes options that have sub-menus
' TimedOut 63000 Write timed exit semaphore file
' TimeLock 60180 Check for TIME LOCK on certain features
' Transfer 62624 RBBS-PC support for external protocols for file transfer
' Toggle 57000 Toggles or views user options
' TwoByteDate 59200 Reduces a data to 2 byte string for space compression
' UnPackDate 59902 Uncompresses a 2 byte date
' UserColor 59965 Lets user set color for text and whether bold
' UserFace 59450 Processes programmable user interface
' ViewArc 64600 Display .ARC file contents to user
' PrivDoorRtn 62629 Private door exit routine
' WipeLine 58800 Wipes away a line so next prints in its place
' WordWrap 59710 Adjust a msg -- wrap lines and perserve paragraphs
'
' $INCLUDE: 'RBBS-VAR.BAS'
'
* REPLACING old line(s) by new
57000 ' $SUBTITLE: 'Toggle - Toggle User Preferences'
' $PAGE
'
' NAME -- Toggle
'
' INPUTS -- ToggleOption Option to toggle or view
' according to the following:
' ToggleOption PREFERENCE
' Toggle VIEW
* ------[ first line different ]------
' 1 -1 AnsiEd Toggle
' 2 -2 Bulletin review on logon
' 3 -3 Case change
' 4 -4 File review on logon
' 5 -5 Highlight
' 6 -6 Line feeds
' 7 -7 Nulls
' 8 -8 TurboKey
' 9 -9 Expert
' 10 -10 Bell
' 11 -11 Chat Availability 'RChat401
'
' OUTPUTS -- ZSubParm passed from TPut
'
' PURPOSE -- Sets or views any single user preference value
'
SUB Toggle (ToggleOption) STATIC
ZSubParm = 0
IF ToggleOption < 0 THEN _
GOTO 57005
ON ToggleOption GOSUB _
57010, _ 'AnsiEd toggle
57120, _ 'Bulletin review on logon
57260, _ 'Case change
57150, _ 'File review on logon
57040, _ 'Highlight
57100, _ 'Line feeds
57210, _ 'Nulls
57230, _ 'TurboKey
57190, _ 'Expert
57170, _ 'Bell
57300 'Internode chat availability ' RCHAT-Mpl
EXIT SUB
* REPLACING old line(s) by new
57005 CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue)
ON -ToggleOption GOSUB _
* ------[ first line different ]------
57030, _ 'AnsiEd Toggle
57130, _ 'Bulletin review on logon
57270, _ 'Case change
57160, _ 'File review on logon
57050, _ 'Highlight
57110, _ 'Line feeds
57220, _ 'Nulls
57240, _ 'TurboKey
57200, _ 'Expert
57180, _ 'Bell
57310 'Internode chat availability ' RCHAT-Mpl
EXIT SUB
* REPLACING old line(s) by new
57010 ZFullScreenEditor = NOT ZFullScreenEditor
* DELETING old line(s)
57020
* REPLACING old line(s) by new
* ------[ first line different ]------
57030 X = 121
Gosub 57400
CALL QuickTPut1 (OutTxt$ + FNOffOn$(ZFullScreenEditor))
RETURN
* REPLACING old line(s) by new
57040 IF ZEmphasizeOnDef$ = "" THEN _
* ------[ first line different ]------
X = 122 : _ 'Pe 01/19/93
Gosub 57400 : _ 'Pe 01/19/93
CALL QuickTPut1 (OutTxt$) : _
RETURN
IF NOT ZHiLiteOff THEN _
CALL QuickTPut (ZColorReset$,0)
CALL SetHiLite (NOT ZHiLiteOff)
GOSUB 57050
CALL UserColor
RETURN
* REPLACING old line(s) by new
57050 IF ZEmphasizeOn$ <> "" THEN _
ZEmphasizeOff$ = ZEscape$ + "[" + ZBoldText$ + _
";40;" + MID$(STR$(ZUserTextColor),2) + "m"
* ------[ first line different ]------
X = 123 'Pe 01/19/93
Gosub 57400 'Pe 01/19/93
CALL QuickTPut1 (ZEmphasizeOn$ + OutTxt$ + ZEmphasizeOff$ + _
FNOffOn$(NOT ZHiLiteOff))
RETURN
* REPLACING old line(s) by new
* ------[ first line different ]------
57110 X = 124 'Pe 01/19/93
Gosub 57400 'Pe 01/19/93
CALL QuickTPut1 (OutTxt$ + FNOffOn$(ZLineFeeds))
CALL SetCrLf
RETURN
* REPLACING old line(s) by new
* ------[ first line different ]------
57130 X = 125 'Pe 01/19/93
Gosub 57400 'Pe 01/19/93
ZOutTxt$ = MID$("Skip Check",1 -5 * ZCheckBulletLogon,5) + OutTxt$
CALL QuickTPut1 (ZOutTxt$)
RETURN
* REPLACING old line(s) by new
* ------[ first line different ]------
57160 X = 126 'Pe 01/19/93
Gosub 57400 'Pe 01/19/93
ZOutTxt$ = MID$("CheckSkip",1 -5 * ZSkipFilesLogon,5) + OutTxt$
CALL QuickTPut1 (ZOutTxt$)
RETURN
* REPLACING old line(s) by new
* ------[ first line different ]------
57180 X = 127 'Pe 01/19/93
Gosub 57400 'Pe 01/19/93
ZOutTxt$ = OutTxt$ + FNOffOn$(ZPromptBell)
CALL QuickTPut1 (ZOutTxt$)
RETURN
* REPLACING old line(s) by new
* ------[ first line different ]------
57200 X = 128 'Pe 01/19/93
Gosub 57400 'Pe 01/19/93
ZOutTxt$ = MID$(OutTxt$,1 -6 * ZExpertUser,6)
CALL QuickTPut1 (ZOutTxt$)
RETURN
* REPLACING old line(s) by new
* ------[ first line different ]------
57220 X = 129 'Pe 01/19/93
Gosub 57400 'Pe 01/19/93
ZOutTxt$ = OutTxt$ + FNOffOn$(ZNulls)
CALL QuickTPut1 (ZOutTxt$)
RETURN
* REPLACING old line(s) by new
* ------[ first line different ]------
57240 X = 130 : _ 'Pe 01/19/93
Gosub 57400 : _ 'Pe 01/19/93
CALL QuickTPut1 (OutTxt$ + FNOffOn$(ZTurboKeyUser))
RETURN
* REPLACING old line(s) by new
57260 IF NOT ZUpperCase THEN _
IF (NOT ZHiLiteOff) OR ZUserGraphicDefault$ = "C" THEN _
* ------[ first line different ]------
X = 131 : _ 'Pe 01/19/93
Gosub 57400 : _ 'Pe 01/19/93
CALL QuickTPut1 (OutTxt$) : _
RETURN
ZUpperCase = NOT ZUpperCase
* REPLACING old line(s) by new
* ------[ first line different ]------
57270 X = 132 'Pe 01/19/93
Gosub 57400 'Pe 01/19/93
ZOutTxt$ = OutTxt$ + " " + _
MID$("and lowerONLY",1 - 9 * ZUpperCase,9)
CALL QuickTPut1 (ZOutTxt$)
* REPLACING old line(s) by new
57280 ZUseTPut = (ZUpperCase OR ZXOnXOff)
RETURN
* ------[ first line different ]------
* INSERTING new line(s)
57300 ZAvailableForChat = NOT ZAvailableForChat ' RCHAT
57310 X = 133 'Pe 01/19/93
Gosub 57400 'Pe 01/19/93
ZOutTxt$ = OutTxt$ + MID$("NO YES", 1 -3 * ZAvailableForChat, 3)
CALL QuickTPut1 (ZOutTxt$) ' RCHAT
RETURN
57400 Call GetRBBSString(X,RBBSString$) 'Pe 01/16/93
OutTxt$ = RBBSString$ 'Pe 01/16/93
Return
END SUB
'
* REPLACING old line(s) by new
58200 ' $SUBTITLE: 'FMS - subroutine to search the upload management system'
' $PAGE
'
' NAME -- FMS
'
' INPUTS -- PARAMETER MEANING
' DirToSearch$ RBBS-PC "DIR" CATEGORY TO LOOK
' FOR
' SearchString$ STRING TO SEARCH FOR
' SearchDate$ DATE TO SEARCH FOR
' ZCategoryName$()
' ZCategoryCode$()
' ZCategoryDesc$()
' CatFound
' ZNumCategories
'
' OUTPUTS -- ProcessedInFMS
' DnldFlag
'
' PURPOSE -- To search the file management system and display the
' files being searched for as well as the catetory descriptions
'
SUB FMS (DirToSearch$,SearchString$,SearchDate$, _
ProcessedInFMS,ZCategoryName$(1),ZCategoryCode$(1), _
ZCategoryDesc$(1),DnldFlag,CatFound,AbortIndex) STATIC
DnldFlag = 0
CALL SearchArray (DirToSearch$,ZCategoryName$(),ZNumCategories,CatFound)
ProcessedInFMS = ProcessedInFMS OR (CatFound > 0)
* ------[ first line different ]------
IF ZFG4$ <> "" THEN _
FG5$ = ZEscape$ + "[1;34;40m" : _
FG6$ = ZEscape$ + "[1;37;41m" : _
FG7$ = ZEscape$ + "[1;37;44m" 'Pe 02/05/90
IF ProcessedInFMS THEN _
ZSubParm = 5 : _
GOSUB 58202 : _
CALL QuickTPut("",1) : _
CALL QuickTPut(FG5$+"╔═"+FG6$+" "+DirToSearch$+" "+FG5$+"═══",0) : _
CALL QuickTPut(FG6$ +" "+ ZCategoryDesc$(CatFound) +" " + FG5$ + "════" + _
ZFG3$+" " + SrchDir$,1) : _
CALL QuickTPut(FG5$+ "║",1) : _
CALL QuickTPut("╚═"+FG7$+"File Name"+FG5$+"═════" + FG7$ + "Size" + _
FG5$+"═════",0) : _
CALL QuickTPut(FG7$+"Date"+FG5$+"════"+FG7$ + "Description"+ _
FG5$+"════════════════════════════"+ZFG3$+" "+ZEmphasizeOff$,1) : _
Cat$ = ZCategoryCode$(CatFound) : _
CALL DispUpDir (CAT$,SearchString$,SearchDate$,DnldFlag,AbortIndex)
EXIT SUB
* REPLACING old line(s) by new
58202 ZOutTxt$ = SearchDate$
IF LEN(ZOutTxt$) > 0 THEN _
ZOutTxt$ = MID$(ZOutTxt$,3) + LEFT$(ZOutTxt$,2)
* ------[ first line different ]------
SrchDir$ = SearchString$ + _
ZOutTxt$
IF SrchDir$ <> "" THEN _
SrchDir$ = ZFG4$ + "Scanning for " + ZFG2$ + SrchDir$
RETURN
END SUB
* REPLACING old line(s) by new
58250 ' $SUBTITLE: 'SmartText - smart text substitution'
' $PAGE
'
' NAME -- SmartText (WRITTEN BY DOUG AZZARITO)
'
' INPUTS -- StringWork$ string to scan for Smart Text
' CRFound Does this line contain a CR?
' ZSmartTextCode Smart Text control code
'
' OUTPUTS -- StringWork$ Input string with Smart replaced
'
' PURPOSE -- Smart Text allows control strings in text files
' to be replaced at runtime with user info or other
' data. The Smart Text control code is a 1-byte
' code (configurable) with a 2-byte action code.
'
* ------[ first line different ]------
SUB SmartText (StringWork$, CRFound, OverStrike, Xtra) STATIC 'Pe040692
IF SmartCarry$<>"" THEN _
StringWork$ = SmartCarry$+StringWork$
Index = INSTR(StringWork$, ZSmartTextCode$)
WHILE Index > 0 AND Index < LEN(StringWork$)-1
IF INSTR(MID$(StringWork$, Index+1,2)," ") THEN _
SmartAct = 0 _
ELSE _
SmartAct = INSTR(ZSmartTable$, MID$(StringWork$, Index+1, 2))
IF SmartAct = 0 THEN _
WasI = 1 : _
GOTO 58254
SmartAct = (SmartAct+2)/3
ON SmartAct GOSUB 58260, 58261, 58262, 58263, 58264, 58265, _
58266, 58267, 58268, 58269, 58270, _
58271, 58272, 58273, 58274, 58275, _
58276, 58277, 58278, 58279, 58280, _
58281, 58282, 58283, 58284, 58285, _
58286, 58287, 58289, 58290, 58291, _
58292, 58293, 58294, 58295, 58296, _
58297, 58298, 58299, 58300, 58301, _
58302, 58303, 58304, 58305, 58306
GOSUB 58256
WasI = LEN(SmartHold$)
ReplaceLen = 3
IF OverStrike OR Overlay THEN _
IF WasI > 2 THEN _
ReplaceLen = WasI _
ELSE _
SmartHold$ = SmartHold$ + SPACE$(3 - WasI)
StringWork$ = LEFT$(StringWork$, Index-1) + SmartHold$ + _
MID$(StringWork$,Index+ReplaceLen)
* REPLACING old line(s) by new
* ------[ first line different ]------
58260 IF Xtra Then _ 'Pe 02/05/93
Goto 58288 'Pe021393
ZLinesPrinted = 0 ' CS (Clear screen line count reset)
SmartHold$ = ""
RETURN
* REPLACING old line(s) by new
* ------[ first line different ]------
58262 if Xtra Then _ 'Pe 02/05/93
Goto 58288 'Pe021393
ZNonStop = ZTrue ' NS Non-stop
SmartHold$ = ""
RETURN
* REPLACING old line(s) by new
58273 SmartHold$ = ZCityState$ ' CT Users CITY & STATE
* ------[ first line different ]------
CALL Trim (SmartHold$) ' DD032301
RETURN
* REPLACING old line(s) by new
* ------[ first line different ]------
58286 IF Xtra THEN _ ' DD020801
Goto 58288 'Pe021393
Overlay = ZTrue ' VY Overlay ON
GOTO 58288
* REPLACING old line(s) by new
* ------[ first line different ]------
58287 IF Xtra THEN _ ' DD020801
Goto 58288 'Pe021393
Overlay = ZFalse ' VN Overlay OFF
* REPLACING old line(s) by new
* ------[ first line different ]------
58290 IF Xtra THEN _ ' DD020801
Goto 58288 'Pe021393
TrimSmart = ZFalse ' TN Trim No
GOTO 58288
* REPLACING old line(s) by new
* ------[ first line different ]------
58295 SmartHold$ = ZConfName$ ' CN Conference Name
RETURN
* INSERTING new line(s)
58296 SmartHold$ = ZFG5$ ' DD061303
GOTO 58258 ' DD061303
58297 SmartHold$ = ZFG6$ ' DD061303
GOTO 58258 ' DD061303
58298 SmartHold$ = ZFG7$ ' DD061303
GOTO 58258 ' DD061303
58299 SmartHold$ = ZFG8$ ' DD061303
GOTO 58258 ' DD061303
* REPLACING old line(s) by new
* ------[ first line different ]------
58300 SmartHold$ = ZFG9$ ' DD061303
GOTO 58258 ' DD061303
* REPLACING old line(s) by new
* ------[ first line different ]------
58301 SmartHold$ = ZFGA$ ' DD061303
GOTO 58258 ' DD061303
* REPLACING old line(s) by new
* ------[ first line different ]------
58302 SmartHold$ = ZFGB$ ' DD061303
GOTO 58258 ' DD061303
* REPLACING old line(s) by new
* ------[ first line different ]------
58303 SmartHold$ = ZFGC$ ' DD061303
GOTO 58258 ' DD061303
* REPLACING old line(s) by new
* ------[ first line different ]------
58304 SmartHold$ = ZFGD$ ' DD061303
GOTO 58258 ' DD061303
* REPLACING old line(s) by new
* ------[ first line different ]------
58305 SmartHold$ = ZFGE$ ' DD061303
GOTO 58258 ' DD061303
* INSERTING new line(s)
58306 SmartHold$ = ZFGF$ ' DD061303
GOTO 58258 ' DD061303
END SUB
'
'Line numbers changed from 58300-58307 to 58350-58357 'Pe 06/21/92
' to allow additional SmartText Colors
'
* DELETING old line(s)
58307
* INSERTING new line(s)
58350 ' $SUBTITLE: 'BufString - write a string with imbedded ZCR/LF'
' $PAGE
'
' NAME -- BufString
'
' INPUTS -- PARAMETER MEANING
' Strng$ STRING TO BE WRITTEN OUT
' DataSize LENGTH OF STRING - # LEFT
' CHARS TO OUTPUT
'
' OUTPUTS -- Strng$ IS WRITTEN TO THE USER
'
' PURPOSE -- To search the string, Strng$, for embedded carriage
' returns and line feeds and write out each line with
' the appropriate substitution (cr/lf if to the local
' screen or cr/nulls/lf if to the communications port).
'
SUB BufString (Strng$,PassedDataSize,AbortIndex) STATIC
WasL = LEN(Strng$)
IF PassedDataSize < WasL THEN _
WasL = PassedDataSize
IF WasL < 1 THEN _
EXIT SUB
ZFF = ZPageLength - 1
StartByte = 1
ZRet = ZFalse
IF CarryOver THEN _
IF ASC(Strng$) = 10 THEN _
StartByte = 2 : _
CALL SkipLine (1+ZJumpSearching)
CarryOver = (MID$(Strng$,WasL,1) = ZCarriageReturn$)
WasL = WasL + CarryOver
58351 CRat = INSTR(StartByte,Strng$,ZCarriageReturn$)
IF CRat > 0 AND CRat < WasL THEN _
CRFound = (MID$(Strng$,CRat + 1,1) = ZLineFeed$) _
ELSE CRFound = ZFalse
EOLlen = -2 * CRFound
IF CRFound THEN _
EOD = CRat _
ELSE EOD = WasL + 1
NumBytes = EOD - StartByte
StringWork$ = MID$(Strng$,StartByte,NumBytes)
IF NOT ZDeleteInvalid THEN _
GOTO 58352
Index = INSTR(StringWork$,"[")
WasJ = LEN(StringWork$) - 1
WHILE Index > 0 AND Index < WasJ
IF MID$(StringWork$,Index + 2,1) = "]" THEN _
IF INSTR (ZInvalidOpts$,MID$(StringWork$,Index + 1,1)) THEN _
MID$(StringWork$,Index + 1,1) = "*"
Index = INSTR(Index + 1,StringWork$,"[")
WEND
58352 IF ZJumpSearching THEN _
Temp$ = StringWork$ : _
CALL AllCaps (Temp$) : _
HiLitePos = INSTR (Temp$,ZJumpTo$) : _
IF HiLitePos = 0 THEN _
GOTO 58357 _
ELSE CALL Bracket (StringWork$,HiLitePos,HiLitePos+LEN(ZJumpTo$)-1,ZEmphasizeOn$,ZEmphasizeOff$) : _
ZJumpSearching = ZFalse
IF ZSmartTextCode THEN _
CALL SmartText (StringWork$, CRFound, ZFalse,ZFalse) 'Pe 02/06/93
IF NOT ZLocalUser THEN _
CALL EofComm (Char) : _
IF Char <> -1 THEN _
GOTO 58353 ' comm port input
ZKeyboardStack$ = INKEY$ : _
IF ZKeyboardStack$ <> "" THEN _ ' keyboard input
GOTO 58353
CALL QuickTPut (StringWork$, - (CRFound))
GOTO 58354
58353 ZOutTxt$ = StringWork$
ZSubParm = 4
IF CRFound THEN ZSubParm = 5
CALL TPut
58354 IF ZRet THEN _
EXIT SUB
IF ZLinesPrinted < ZFF THEN _
GOTO 58357
58355 CALL CheckTimeRemain (MinsRemaining)
CALL CheckCarrier
IF ZSubParm = -1 THEN _
EXIT SUB
IF ZNonStop THEN _
GOTO 58357
IF NOT CRFound THEN _
GOTO 58357
ZForceKeyboard = ZTrue
CALL AskMore ("",ZTrue,ZFalse,AbortIndex,ZStopInterrupts)
IF ZNo THEN _
ZRet = ZTrue : _
EXIT SUB
58357 StartByte = EOD + EOLlen
IF StartByte <= WasL THEN _
GOTO 58351
END SUB
* REPLACING old line(s) by new
58400 ' $SUBTITLE: 'BufFile - subroutine to write a sequential file to the user'
' $PAGE
'
' NAME -- BufFile
'
' INPUTS -- PARAMETER MEANING
' FileSpec$ NAME OF THE FILE TO WRITE TO
' OUT TO THE USER
'
' OUTPUTS -- NONE FILE IS WRITTEN TO THE USER
'
' PURPOSE -- To display a sequential file to the user
'
SUB BufFile (FilName$,AbortIndex) STATIC
CALL FindIt (FilName$)
IF NOT ZOK THEN _
GOTO 58419
ZNo = ZFalse
CALL OpenRSeq (FilName$,NumRecs,LenLastRec,ZBufferSize)
IF ZErrCode > 0 THEN _
GOTO 58419
DataSize = ZBufferSize
FIELD 2, DataSize AS SeqRec$
ZNonStop = ZNonStop OR (ZPageLength < 1)
ZJumpLast$ = ""
ZJumpSearching = ZFalse
ZJumpSupported = ZTrue
IF NOT ZStopInterrupts THEN _
IF NOT ZConcatFIles THEN _
IF NOT ZNonStop THEN _
* ------[ first line different ]------
Call GetRBBSString(249,RBBSString$) : _ 'Pe 01/16/93
ZOutTxt$ = RBBSString$ : _ 'Pe 01/16/93
ZSubParm = 2 : _
CALL TPut
IF ZSubParm = -1 THEN _
EXIT SUB 'Pe 02/09/90
WasTU = 0
* REPLACING old line(s) by new
58419 CLOSE 2
* ------[ first line different ]------
ZBypassTimeCheck = ZFalse
ZStopInterrupts = ZFalse
CALL QuickTPut (ZEmphasizeOff$,0)
ZJumpSupported = ZFalse
END SUB
* REPLACING old line(s) by new
58700 ' $SUBTITLE: 'RotorsDir - search thru a list of subdirs for a file'
' $PAGE
'
' NAME -- RotorsDir
'
' INPUTS -- PARAMETER MEANING
' FilName$ FILE NAME TO LOOK FOR
' SDIR.ARA ARRAY OF SUBDIRECTORIES
' MaxSearch MAX # OF SUBDIRECTORIES
' MarkingTime WHETHER TO MARK TIME
'
' OUTPUTS -- FNAME$ ADD SUBDIRECTORY TO THE
' FILE NAME IF FOUND. OTHER-
' WISE DON'T.
' ZOK TRUE IF FILE WAS Found
'
' PURPOSE -- Hunt through a list of subdirectories to determine
' if a file is in any of them. If file is found, open
' the file as file #2, add the drive/path to the file
' name, and sets ZOK to true. If file isn't found, set
' file name to the last subdirectory searched -- which
' should be the upload subdirectory.
'
' If the library menu is selected (ZMenuIndex = 6), then
' only 2 subdirectories are searched. The first being
' the work disk and the second being the selected
' library disk.
'
* ------[ first line different ]------
'
'The following code replaces the ROTORSDIR sub in RBBSSUB4.BAS (Maple 0726).
'This code is fully compatible with the original ROTORSDIR code and makes RFM
'backwards compatible as well. If extra FFS files are desired, create a file in
'the same directory called IDX.LST. In this file, list the extra FIDX and LIDX
'files that you want to use. They can have any name that you want. If you want
'a Tab file, the name of the FIDX file must have only 7 characters to make room
'for the T added on to the name, just as is required with the primary FIDX file.
'Example:
'
'c:\rbbs\dir\walnutf.def,c:\rbbs\dir\walnutl.def
'c:\rbbs\dir\pdsi7f.def,c:\rbbs\dir\pdsi7l.def
'c:\rbbs\dir\fidx1,c:\rbbs\dir\lidx1
'
'These entries would cause RBBS to search the following in order:
'FIDX.DEF FIDXT.DEF LIDX.DEF
'WALNUTF.DEF WALNUTFT.DEF WALNUTL.DEF
'PDSI7F.DEF PDSI7FT.DEF PDSI7L.DEF
'FIDX1 FIDX1T LIDX1
SUB RotorsDir (FilName$,SDirAra$(1),MaxSearch,MarkingTime,PassToMacro$) STATIC
CALL Carrier
IF ZSubParm = -1 THEN _ 'Pe 01/04/89
EXIT SUB 'Pe 01/04/89
ZOK = ZFalse
ZDotFlag = ZFalse
IF MarkingTime THEN _
Call GetRBBSString(91,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut (OutTxt$ + " "+FilName$,0)
NumSearch = 1
WasX = 0
WasX$ = ZArkViewPath$ + FilName$ 'Pe 08/15/91
CALL FindFile (WasX$,ZOK) 'Pe 08/15/91
IF ZOK THEN _ 'Pe 08/15/91
GOTO 58710 'Pe 08/15/91
WHILE (NOT ZOK) AND NumSearch <= MaxSearch AND _
SDirAra$(NumSearch) <> ""
IF MarkingTime THEN _
CALL MarkTime (WasX)
WasX$ = SDirAra$(NumSearch) + _
FilName$
CALL FindFile (WasX$,ZOK)
NumSearch = NumSearch + 1
WEND
IF ZOK OR NOT ZFastFileSearch THEN _
GOTO 58710
'* ------[ first line different ]------
TFastFileList$ = ZFastFileList$ 'SM102201
TFastFileLocator$ = ZFastFileLocator$ 'SM102201
TFastTabs$ = ZFastTab$ 'SM102201
Tptr = 1 'SM102201
CALL BreakFileName (ZFastFileList$, Drive$,TWasX$,ZWasY$,ZTrue) 'SM102201
TIdxLst$ = Drive$ + "IDX.LST" 'SM102201
CALL FindIt (TIdxLst$) 'SM102201
IF NOT ZOK THEN _ 'SM102201
TIdxLst$ = "" 'SM102201
* DELETING old line(s)
58705
* INSERTING new line(s)
58708 FSize = 21 'SM102201
CALL OpenRSeq (TFastFileList$,HighRec,WasX,21) ' WM050501
FIELD #2, 12 AS SearchFile$, _ ' WM050501
4 AS SearchPath$, _ ' WM050501
3 AS SearchDate$, _ ' WM050501
2 AS SearchCrLf$ ' WM050501
Get 2,1 'SM102201
if SearchCrLf$ <> ZCrLf$ then _ 'SM102201
FSize = 18 : _ 'SM102201
CALL OpenRSeq (TFastFileList$,HighRec,WasX,18) : _ 'SM102201
FIELD #2, 12 AS SearchFile$, _ 'SM102201
4 AS SearchPath$, _ 'SM102201
2 AS SearchCrLf$ 'SM102201
IF ZErrCode <> 0 THEN _
ZOK = ZFalse : _ 'SM102201
GOTO 58710
CALL TrimTrail (FilName$,".")
CALL BinSearch (FilName$,1,12,FSize,HighRec,RecFoundAt,RecFound$) 'SM102201
ZOK = (RecFoundAt > 0)
ZFastTab$ = TFastTab$ 'SM102201
IF ZOK THEN _ 'SM102201
GOTO 58709 'SM102201
IF TIdxLst$ = "" THEN _ 'SM102201
GOTO 58710 'SM102201
CALL OpenWork(2,TIdxLst$) 'SM102201
IF ZErrCode <> 0 THEN _ 'SM102201
ZOK = ZFalse : _ 'SM102201
GOTO 58710 'SM102201
CALL ReadParmsX(2,ZOutTxt$(),2,TPtr) 'SM102201
IF ZErrCode <> 0 or ZOutTxt$(1)="" or ZOutTxt$(2)="" THEN _ 'SM102201
ZOK = ZFalse : _ 'SM102201
GOTO 58710 'SM102201
TPtr = TPtr + 1 'SM102201
TFastFileList$ = ZOutTxt$(1) 'SM102201
TFastFileLocator$ = ZOutTxt$(2) 'SM102201
CALL BreakFileName (TFastFileList$,Drive$,TWasX$,ZWasY$,ZTrue) 'SM102201
TFN$ = Drive$ + TWasX$ + "T" + ZWasY$ 'SM102201
CALL FindIt (TFN$) 'SM102201
IF ZOK THEN _ 'SM102201
CALL OpenRSeq (TFN$, TWasX, WasY, 72) : _ 'SM102201
FIELD 2, 72 AS IndexRec$ : _ 'SM102201
GET 2, 1 : _ 'SM102201
ZFastTabs$ = IndexRec$ : _ 'SM102201
CLOSE 2 _ 'SM102201
ELSE _ 'SM102201
ZFastTabs$ = "" 'SM102201
GOTO 58708 'SM102201
58709 ZOK = ZFalse 'SM102201
CALL CheckInt (MID$(RecFound$,13,4))
IF ZTestedIntValue < 1 THEN _
GOTO 58710
WasDX$ = DATE$ ' Pe081091
LSET SearchDate$ = CHR$ (VAL (MID$ (WasDX$, 9, 2)) - 48) + _ ' Pe081091
CHR$ (VAL (MID$ (WasDX$, 1, 2)) + 31) + _ ' Pe081091
CHR$ (VAL (MID$ (WasDX$, 4, 2)) + 31) ' Pe081091
PUT 2, RecFoundAt ' WM050501
CALL OpenRSeq (TFastFileLocator$,HighRec,WasX,66) 'SM102201
IF ZErrCode <> 0 OR ZTestedIntValue > HighRec THEN _
GOTO 58710
FIELD 2, 66 AS LocatorRec$
GET 2, ZTestedIntValue
Temp$ = WasX$
WasX$ = LEFT$(LocatorRec$,63)
CALL Trim (WasX$)
IF LEFT$(WasX$,2) = "M!" THEN _
ZOK = ZFalse : _
ZGSRAra$(1) = PassToMacro$ : _
WasX$ = RIGHT$(WasX$,LEN(WasX$)-2) : _
CALL Trim (WasX$) : _
ZFileLocation$ = "" : _
CALL MacroExe (WasX$) : _
IF ZFileLocation$ = "" THEN _
ZOK = ZFalse : _
WasX$ = Temp$ : _
GOTO 58710 _
ELSE WasX$ = ZFileLocation$
WasX$ = WasX$ + FilName$
CALL FindFile (WasX$,ZOK)
IF NOT ZOK THEN _
WasX$ = SDirAra$(MaxSearch) + FilName$
GOTO 58710
* REPLACING old line(s) by new
* ------[ first line different ]------
58900 If ZEndList = ZTrue Then _ 'Lk11/29/91
Exit Sub 'Lk 11/29/91
ZOutTxt$ = ZDirPrompt$
ZMacroMin = 2
CALL PopCmdStack
IF ZWasQ = 0 OR ZSubParm = -1 THEN _
EXIT SUB
CALL AraAllCaps (ZUserIn$(),ZAnsIndex)
IF ZUserIn$(ZAnsIndex) = "Q" THEN _
ZWasQ = 0 : _
EXIT SUB
ZWasA = INSTR("E+.E-.E.L.H.?.",ZUserIn$(ZAnsIndex)+".")
IF ZWasA = 0 THEN _
EXIT SUB
IF ZWasA > 8 THEN _
IF ZAnsIndex < ZLastIndex THEN _
GOTO 58900 _
ELSE GOTO 58902
IF ZWasA = 7 THEN _
ZExtendedOff = NOT ZExtendedOff _
ELSE ZExtendedOff = (ZWasA > 3)
Call GetRBBSString(116,RBBSString$) 'Pe 01/16/93
OutTxt$ = RBBSString$ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$ + " "+FNOffOn$(NOT ZExtendedOff))
GOTO 58900
* DELETING old line(s)
59100
59102
59104
59106
59108
59110
59112
59114
* REPLACING old line(s) by new
59456 ZFileName$ = ZCurPUI$
CALL Graphic (ZFileName$)
IF NOT ZOK THEN _
CALL UpdtCalr ("Missing menu " + ZCurPUI$,2) : _
ZCurPUI$ = ZPrevPUI$ : _
GOTO 59456
CALL BreakFileName(ZFileName$,ZWasZ$,ZActiveMenu$,ZWasZ$,ZTrue)
ZActiveMenu$ = LEFT$(ZActiveMenu$,1)
LSET ZLastCommand$ = ZActiveMenu$ + " "
ZPrevPUI$ = ZCurPUI$
LINE INPUT #2,ZFileName$
* ------[ first line different ]------
' LINE INPUT #2,Prompt$ 'SM091926
INPUT #2,Prompt$ 'SM091926
INPUT #2,ValidChoice$,ActualCommands$
LINE INPUT #2,MenuChoice$
LINE INPUT #2,MenuName$
LINE INPUT #2,QuitCmd$
' LINE INPUT #2,QuitPrompt$ 'SM091926
INPUT #2,QuitPrompt$ 'SM091926
LINE INPUT #2,QuitSubCmds$
LINE INPUT #2,QuitMenuOpt$
LINE INPUT #2,QuitMenus$
CALL Graphic (ZFileName$)
CALL BreakFileName (ZFileName$,MenuDrvPath$,WasX$,ZWasY$,ZTrue)
MenuToDisplay$ = ZFileName$
WasJ = INSTR(ZOrigCommands$,"?")
IF WasJ < 1 THEN _
WasX$ = "" _
ELSE WasX$ = MID$(ZAllOpts$,WasJ,1)
* REPLACING old line(s) by new
59458 IF ZExpertUser THEN _
* ------[ first line different ]------
Call QuickTput (ZConfName$ + ": ",0) : _
CALL DispTimeRemain (TimeRemaining!) : _
GOTO 59461
* REPLACING old line(s) by new
59460 ZNonStop = (ZPageLength < 1)
* ------[ first line different ]------
ZDeleteInvalid = ZTrue 'Pe 01/08/90
CALL BufFile (MenuToDisplay$,WasX)
ZDeleteInvalid = ZFalse 'Pe 01/08/90
CALL Line25 'Pe 01/13/90
Call QuickTput (ZConfName$ + ": ",0)
CALL DispTimeRemain (TimeRemaining!) 'Pe time mod Moved line number down 04/02/90
* REPLACING old line(s) by new
59461 MID$(ZLastCommand$,2,1) = " "
ZOutTxt$ = Prompt$
ZTurboKey = -ZTurboKeyUser
CALL PopCmdStack
IF ZSubParm = -1 OR ZFunctionKey <> 0 THEN _
EXIT SUB
IF ZWasQ = 0 THEN _
* ------[ first line different ]------
GOTO 59461
* REPLACING old line(s) by new
* ------[ first line different ]------
59492 CALL Putcom (CHR$(7)) 'Pe 04/25/92
Call GetRBBSString(134,RBBSString$) 'Pe 01/16/93
OutTxt$ = RBBSString$ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$ + ZWasZ$ + ">")
Call FlushKeys
GOTO 59460
END SUB
* REPLACING old line(s) by new
59500 ' $SUBTITLE: 'SubMenu -- subroutine to process menus'
' $PAGE
'
' NAME -- SubMenu
'
' INPUTS -- PARAMETER MEANING
' PassedPrompt$ PROMPT TO DISPLAY
' CurMenu$ NOVICE MENU TO DISPLAY
' FrontOpt$ DRIVE/PATH/PREFIX OF FILE
' NEEDED FOR TYPED OPTION
' BackOpt$ SUFFIX/EXTENSION OF FILE
' NEEDED WITH TYPED OPTION
' ReturnOn$ LETTERS CALLING PROGRAM WANTS
' CONTROL ON
' GRDefault$ GRAPHICS DEFAULT TO USE
' VerifyInMenu WHETHER VERIFY OPTION IS IN MENU
' AllMenuOK WHETHER CONTROL SHOULD RETURN
' WHEN IN MENU
' ZAnsIndex # OF COMMANDS IN TYPE AHEAD
' RequireInMenu WHETHER OPTION MUST BE IN MENU
'
' OUTPUTS -- ZWasZ$ OPTION PICKED
' ZFileName$ NAME OF FILE SUPPORTING OPTION
'
'
' PURPOSE -- Handles menus - including conference, bulletins,
' doors, questionnaires. Supports sub-menus (i.e.
' an option on the menu that invokes another menu)
'
* ------[ first line different ]------
'* ("Join what, L)ist M)ain N)ext, all/mail S)ince P)ers, or name ([Q]uit)"
' PassedPromt$
'
'* WasA1$, MsgDrvPath$ ,"M.DEF", ",M,MAIN,N,S,P,Q,"
' CurMenu$ FrontOption$ BackOption$ ReturnOn$
'
' * ZTrue, ZFalse, ZFalse, "C.DEF", WasX, ZFalse)
' PassedVerfiyin AllMenuOk ReQuiredinMenu BackOption InMenu ChkGraphic
'
SUB SubMenu (PassedPrompt$,CurMenu$,FrontOpt$, _
BackOpt$,ReturnOn$,PassedVerifyInMenu, _
AllMenuOK,RequireInMenu,BackOpt2$,InMenu,ChkGraphic) STATIC
* REPLACING old line(s) by new
59510 ZFileName$ = CurMenu$
InMenu = ZTrue
CALL BreakFileName (FrontOpt$,WasX$,FrontPre$,ZWasDF$,ZTrue)
CALL BreakFileName (CurMenu$,MenuDrv$,WasX$,ZWasDF$,ZTrue)
MenuFront$ = MenuDrv$ + LEFT$(WasX$,LEN(WasX$)-LEN(PreSuf$))
IF CurMenu$ = LastSubMenu$ THEN _
MenuFront$ = LEFT$(MenuFront$,LEN(MenuFront$)-1)
CALL Graphic (ZFileName$)
CurMenuVer$ = ZFileName$
ZStopInterrupts = ZFalse
* ------[ first line different ]------
* INSERTING new line(s)
59514 IF ZAnsIndex < ZLastIndex OR ZExpertUser THEN _ ' KG0111501
GOTO 59520
* REPLACING old line(s) by new
* ------[ first line different ]------
59520 CALL DispTimeRemain (MinsRemaining) 'JA010801
ZOutTxt$ = PassedPrompt$ 'get response
CALL PopCmdStack
IF ZWasQ = 0 OR ZSubParm = -1 THEN _
EXIT SUB
* REPLACING old line(s) by new
59530 ZWasZ$ = ZUserIn$(ZAnsIndex)
CALL AllCaps (ZWasZ$)
* ------[ first line different ]------
'
IF CurMenu$ = ZConfMenu$ then ' Pe ConfNum Mod
Call BreakFileName (ZConfMailList$,Drive$,Prefix$,Ext$,ZTrue)
Call Findit(Drive$+"CONFNUM.DEF") ' Pe ConfNum2
IF NOT ZOK THEN _ ' Pe ConfNum Mod
Goto 59531 ' Pe ConfNum Mod
Call Openwork (2,Drive$ +"CONFNUM.DEF") ' Pe ConfNum Mod
While NOT EOF(2) AND (Not Foundit) ' Pe ConfNum Mod
Call ReadAny ' Pe ConfNum Mod
IF ZErrCode > 0 THEN _ ' Pe Confnum2
Close 2 : _ 'Pe Confnum2
Goto 59531 'Pe Confnum2
Dummy1$ = ZOutTxt$ ' Pe ConfNum Mod
Call ReadAny ' Pe ConfNum Mod
Dummy2$ = ZOutTxt$ ' Pe ConfNum Mod
Call ReadAny ' Pe ConfNum Mod
Dummy3$ = ZOutTxt$ ' Pe ConfNum Mod
Call ReadAny 'Pe 01/03/93
Dummy4$ = ZOutTxt$ 'Pe 01/03/93
If ZWasZ$ = Dummy1$ or ZWasZ$ = Dummy4$ Then ' Pe ConfNum Mod
ZConfNum$ = Dummy1$
ConfNam$ = Dummy4$
Foundit = ZTrue ' Pe ConfNum Mod
Call Breakfilename (Dummy2$,pre$,body$,ext$,ZFalse) ' Pe ConfNum Mod
ZWasZ$ = Mid$(body$,1,LEN(body$)-(1)) ' Pe ConfNum Mod
END IF ' Pe ConfNum Mod
Wend ' Pe ConfNum Mod
Close 2 ' Pe ConfNum Mod
Foundit = ZFalse ' Pe ConfNum Mod
End IF ' Pe ConfNum Mod
'
* INSERTING new line(s)
59531 IF INSTR(ReturnOn$,","+ZWasZ$+",") THEN _ 'check if calling pgm wants
EXIT SUB
IF INSTR("LH?",ZWasZ$) THEN _ 'check whether caller wants help
GOTO 59515
IF INSTR(ZWasZ$,".") > 0 THEN _
GOTO 59532
CALL BadFile (ZWasZ$,WasBF)
IF WasBF > 1 THEN _
GOTO 59532
FPre$ = MenuFront$ ' check for sub-option
PreSuf$ = "-"
CALL BadFile (FPRE$ + ZWasZ$ + "-",WasBF)
ZOK = ZFalse
IF WasBF < 2 THEN _
VerifyInMenu = ZFalse : _
GOSUB 59538
PreSuf$ = ""
VerifyInMenu = PassedVerifyInMenu
IF NOT ZOK THEN _
FPre$ = FrontOpt$ : _ ' check standard option
GOSUB 59538 : _
IF NOT ZOK THEN _ ' check option where menu is
FPre$ = MenuDrv$ + FrontPre$ : _
IF FrontOpt$ <> FPre$ THEN _
GOSUB 59538
IF NewMenu THEN _
NewMenu = ZFalse : _
GOTO 59515
IF ZOK THEN _
EXIT SUB
* REPLACING old line(s) by new
59532 GOSUB 59547
* ------[ first line different ]------
GOTO 59514 ' KG011501
* REPLACING old line(s) by new
* ------[ first line different ]------
59547 Call GetRBBSString(134,RBBSString$) 'Pe 01/16/93
OutTxt$ = RBBSString$ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$ + ZWasZ$+ ">")
ZLastIndex = 0
IF VerifyInMenu AND InMenu AND NOT RequireInMenu THEN _
CALL UpdtCalr("Option " + ZWasZ$ + " on menu " + _
CurMenu$ + " but not found",1)
RETURN
* REPLACING old line(s) by new
59548 END SUB
* ------[ first line different ]------
* REPLACING old line(s) by new
59698 ' $SUBTITLE: 'MsgImport -- subroutine to import a message'
' $PAGE
'
' NAME -- MsgImport
'
' INPUTS -- PARAMETER MEANING
' MaxLines MAXIMUM # OF LINES
' MaxLen MAXIMUM LENGTH OF A LINE
' NumLines NUMBER OF LINES ALREADY IN MESSAGE
' LineAra$ ARRAY OF LINES IN MESSAGE
'
' OUTPUTS -- NumLines
' LineAra$
'
' PURPOSE -- Allows local user to append a text file to
' a message. Will word wrap if needed.
'
SUB MsgImport (MaxLines,MaxLen,NumLines,LineAra$(1)) STATIC
IF NOT (ZLocalUser OR ZSysop) THEN _
* ------[ first line different ]------
Call GetRBBSString(135,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$) : _
EXIT SUB
* REPLACING old line(s) by new
* ------[ first line different ]------
59700 Call GetRBBSString(136,RBBSString$) 'Pe 01/16/93
OutTxt$ = RBBSString$ 'Pe 01/16/93
ZOutTxt$ = OutTxt$ + ZPressEnter$
CALL PopCmdStack
IF ZSubParm = -1 OR ZWasQ = 0 THEN _
EXIT SUB
CALL FindIt (ZUserIn$(ZAnsIndex))
IF NOT ZOK THEN _
Call GetRBBSString(70,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut1 (ZUserIn$(ZAnsIndex) +OutTxt$) : _
GOTO 59700
WHILE NOT EOF(2) AND NumLines < MaxLines
NumLines = NumLines + 1
LINE INPUT #2,LineAra$(NumLines)
WEND
CLOSE 2
CALL WordWrap (MaxLen,NumLines,LineAra$())
END SUB
* REPLACING old line(s) by new
59703 ' $SUBTITLE: 'WordWrap -- subroutine to wrap lines in a message'
' $PAGE
'
' NAME -- WordWrap
'
' INPUTS -- PARAMETER MEANING
' MaxLen MAXIMUM LENGTH OF A SINGLE LINE
' NumLines NUMBER OF LINES IN A MESSAGE
' LineAra$ ALL THE LINES IN THE MESSAGE
'
' OUTPUTS -- NumLines
' LineAra$
'
' PURPOSE -- Batch adjusts a message, wrapping lines if
' needed. Preserves paragraph structure.
'
SUB WordWrap (MaxLen,NumLines,LineAra$(1)) STATIC
WasJ = 1
* ------[ first line different ]------
SplitOn = 1 + .4 * MaxLen
WHILE WasJ <= NumLines and NumLines < ZMaxMsgLines 'Pe 08/04/91
ReFormatted = ZFalse
* REPLACING old line(s) by new
59780 ' $SUBTITLE: 'GetAll -- subroutine to create directory list'
' $PAGE
'
' NAME -- GetAll
'
' INPUTS -- PARAMETER MEANING
' LookIn$ NAME OF FILE TO SEARCH
' DIR.EXT$ MAIN DIRECTORY EXTENSION TO USE
' StartPos Last POSITION USED IN ARRAY
'
' OUTPUTS StartPos Last ELEMENT USED IN ARRAY
' LoadInto$ ARRAY TO LOAD ELEMENTS Found
'
' PURPOSE -- Creates a list (LoadInto$) of all directories
* ------[ first line different ]------
' to be listed when A)ll is selected for a directory.
' All uses config parm, which can be either a single
' directory or list of directories (begin with "@").
'
SUB GetAll (LoadInto$(1), StartPos) STATIC
IF ZMasterDirName$ <> "" AND LEFT$(ZMasterDirName$,1) <> "@" THEN _
StartPos = StartPos + 1 : _
LoadInto$(StartPos) = ZMasterDirName$ : _
EXIT SUB
ZOK = ZFalse
IF LEN (ZMasterDirName$) > 1 AND LEFT$(ZMasterDirName$,1) = "@" THEN _
CALL FindIt(MID$(ZMasterDirName$,2))
IF NOT ZOK THEN _
Call GetRBBSString(137,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$) : _
EXIT SUB
MaxLoad = UBOUND(LoadInto$, 1)
StartSort = StartPos + 1
WHILE NOT EOF(2) AND StartPos < MaxLoad
LINE INPUT #2, ZOutTxt$
StartPos = StartPos + 1
LoadInto$(StartPos) = ZOutTxt$
WEND
CLOSE 2
END SUB
* REPLACING old line(s) by new
59850 ' $SUBTITLE: 'ConfMail -- quickly checks mail waiting'
' $PAGE
'
' NAME -- ConfMail
'
' INPUTS -- PARAMETER MEANING
' SKIP.CONFIRM Whether to skip confirm of option
' ZConfMailList$ File of user/message pairs to check
' ZActiveUserFile$ Active user file (restored on exit)
' ZActiveMessageFile$ Active msg file (restored)
' OUTPUTS -- None
'
' PURPOSE -- Quicking scans message header record to get
' last msg # and user record to get whether any
' new mail and last msg read, reports both, using
' highlighting if new mail to caller.
'
SUB ConfMail (MailCheckConfirm,LinkNew,LinkPers) STATIC
SkipJoinUnjoin = ZNonStop OR LinkNew OR LinkPers
IF ZStartHash = 1 AND ZUserFileIndex > 0 THEN _
CALL FindIt (ZConfMailList$) _
ELSE ZOK = ZFalse
IF NOT ZOK THEN _
EXIT SUB
IF PrevMailList$ <> ZConfMailList$ THEN _
SkipParms = 0
PrevMailList$ = ZConfMailList$
IF MailCheckConfirm THEN _
* ------[ first line different ]------
Call GetRBBSString(301,RBBSString$) : _ 'Pe 01/16/93
ZOutTxt$ = RBBSString$ : _ 'Pe 01/16/93
ZTurboKey = -ZTurboKeyUser : _
CALL PopCmdStack : _
IF ZNo OR ZSubParm < 0 THEN _
EXIT SUB
CALL BreakFileName (ZActiveUserFile$,WasX$,NowInPre$,NowInExt$,ZFalse)
CALL BreakFileName (ZOrigUserFile$,WasX$,OrigPre$,OrigExt$,ZFalse)
CALL SkipLine (1)
Call GetRBBSString(138,RBBSString$) 'Pe 01/16/93
OutTxt$ = RBBSString$ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$)
IF LinkNew OR LinkPers THEN _
ZLinkedConf$ = ""
AnyMail = ZFalse
ZStopInterrupts = ZFalse
WasA1$ = ZActiveUserFile$
MsgFileSave$ = ZActiveMessageFile$
TempIndivValue$ = ""
UserFileIndexSave = ZUserFileIndex
UserRecordHold$ = ZUserRecord$
ZOK = ZTrue
CALL ReadParms (ZWorkAra$(),1,SkipParms)
IF SkipParms = 0 THEN _
LogicalEOF$ = "" _
ELSE LogicalEOF$ = ZWorkAra$(1)
* REPLACING old line(s) by new
59851 IF NOT ZOK THEN _
GOTO 59856 _
ELSE IF EOF(2) THEN _
IF LogicalEOF$ = "" OR SkipParms = 0 THEN _
GOTO 59856 _
ELSE CALL FindIt (ZConfMailList$) : _
SkipParms = 0 : _
GOTO 59851
* ------[ first line different ]------
' Call ReadAny 'Pe ConfNum Mod
' ConfNum$ = ZOutTxt$ 'Pe ConfNum Mod
CALL ReadAny
IF ZErrCode > 0 THEN _ 'Pe 02/04/93
GOTO 59856 'Pe 02/04/93
ZActiveUserFile$ = ZOutTxt$
CALL ReadAny
IF ZErrCode > 0 THEN _
GOTO 59856
SkipParms = SkipParms + 2
ZActiveMessageFile$ = ZOutTxt$
' Call ReadAny 'Pe 01/03/93
' ConfNam$ = ZOutTxt$ 'Pe 01/03/93
CALL FindFile (ZActiveUserFile$,ZOK)
IF NOT ZOK THEN _
GOTO 59856
CALL OpenUser (ZHighestUserRecord)
FIELD 5, 128 AS ZUserRecord$
CALL FindFile (ZActiveMessageFile$,ZOK)
IF NOT ZOK THEN _
GOTO 59856
CALL FindUser (ZOrigUserName$,"",ZStartHash,ZLenHash,_
0,0,ZHighestUserRecord,_
Found,HoldUserFileIndex,ZWasSL)
IF NOT Found THEN _
GOTO 59853
CALL OpenMsg
FIELD 1, 128 AS ZMsgRec$
GET 1,1
AnyMail = ZTrue
WasX = CVI(MID$(ZUserRecord$,57,2))
FileWait = (WasX AND 4096) > 0
WasX = (WasX AND 512) > 0
CALL BreakFileName (ZActiveUserFile$,WasX$,CurPre$,CurExt$,ZFalse)
InCur = (CurPre$ = NowInPre$ AND CurExt$ = NowInExt$)
* REPLACING old line(s) by new
59852 IF InCur THEN _
FileWait = ZFileWaiting : _
WasX = ZMailWaiting : _
ZWasA = ZLastMsgRead _
ELSE ZWasA = CVI(MID$(ZUserRecord$,51,2))
ZWasB = VAL(LEFT$(ZMsgRec$,8))
WasZ = (ZWasB - ZWasA)
IF WasZ < 0 THEN _
ZWasA = 0 : _
WasZ = ZWasB _
ELSE IF WasZ = 0 THEN _
WasX = ZFalse
ZWasSL = LEN(CurPre$)
IF CurPre$ = "USERS" AND CurExt$ = "" THEN _
Conf$ = "MAIN" _
ELSE Conf$ = LEFT$(CurPre$,ZWasSL-1)
ZOutTxt$ = MID$(STR$((ZWasB > ZWasA) * WasZ),2)
Temp = LEN(ZOutTxt$)
ZOutTxt$ = SPACE$(-(Temp<4) * (4-Temp)) + ZOutTxt$
IF (WasZ > 0 AND LinkNew) OR (WasX AND LinkPers) THEN _
IF (NOT InCur) THEN _
CALL AddLink (Conf$)
* ------[ first line different ]------
Temp = (INSTR(ZCarriageReturn$ + ZLinkedConf$,ZCarriageReturn$ + Conf$ + ZCarriageReturn$) > 0)
' ZWasY$ = Space$(3-LEN(ZConfNum$)) + ZConfNum$ + " " ' Pe ConfNum2 Mod
ZWasY$ = MID$(" *",1-Temp,1) + Conf$ + SPACE$(-(ZWasSL<8) * (8-ZWasSL)) ' Pe ConfNum Mod
IF WasX THEN _
WasX$ = ZEmphasizeOn$ + "Some to you" + ZEmphasizeOff$ _
ELSE WasX$ = " "
IF FileWait THEN _
Temp$ = " - " + ZEmphasizeOn$ + "Personal Uplds" + ZEmphasizeOff$ _
ELSE Temp$ = ""
ZOutTxt$ = ZWasY$ + ": " + ZOutTxt$ + " new message(s) " + _
WasX$ + Temp$
ZSubParm = 5
CALL TPut
ZJumpSupported = ZFalse
IF SkipJoinUnjoin THEN _
CALL AskMore ("",ZTrue,ZTrue,WasX,ZTrue) : _
GOTO 59853
ZTurboKey = -ZTurboKeyUser
CALL AskMore (",J)oin,U)njoin,L)ink,D)elink",ZTrue,ZFalse,WasX,ZFalse)
IF ZNo THEN _
GOTO 59856
WasX$ = LEFT$(ZUserIn$(1),1)
CALL AllCaps (WasX$)
IF WasX$ = "J" THEN _
ZLastIndex = ZWasQ : _
ZHomeConf$ = Conf$ : _
GOTO 59856
IF WasX$ = "D" THEN _
CALL DeLink (Conf$) : _
GOTO 59852
IF WasX$ = "L" THEN _
CALL AddLink (Conf$) : _
GOTO 59852
IF WasX$ = "U" THEN _
IF InCur OR (OrigPre$ = CurPre$ AND OrigExt$ = CurExt$) THEN _
Call GetRBBSString(139,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$) _
ELSE LSET ZUserRecord$ = CHR$(0) + "deleted user" : _
ZUserFileIndex = HoldUserFileIndex : _
ZSubParm = 6 : _
CALL FileLock : _
PUT 5, HoldUserFileIndex : _
ZSubParm = 8 : _
CALL FileLock : _
Call GetRBBSString(140,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$ + " " + Conf$)
* REPLACING old line(s) by new
59856 ZActiveUserFile$ = WasA1$
CALL OpenUser (ZHighestUserRecord)
FIELD 5, 128 AS ZUserRecord$
IF (NOT ZRet) AND NOT AnyMail THEN _
* ------[ first line different ]------
Call GetRBBSString(141,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$)
ZUserFileIndex = UserFileIndexSave
LSET ZUserRecord$ = UserRecordHold$
ZActiveMessageFile$ = MsgFileSave$
CALL OpenMsg
FIELD 1, 128 AS ZMsgRec$
GET 1,1
ZNonStop = (ZPageLength < 1)
WasX$ = ZUserIn$(ZAnsIndex+1)
CALL AllCaps (WasX$)
ZAnsIndex = ZAnsIndex - (WasX$ = "C")
SkipParms = -(NOT EOF(2))*SkipParms
LinkNew = ZFalse
LinkPers = ZFalse
END SUB
* REPLACING old line(s) by new
59860 CALL QuickTPut (ZEmphasizeOff$,0)
IF CantInterrupt THEN _
ZTurboKey = 2 : _
ZForceKeyboard = ZTrue : _
* ------[ first line different ]------
Call GetRBBSString(302,RBBSString$) : _ 'Pe 01/16/93
ZOutTxt$ = RBBSString$ _ 'Pe 01/16/93
ELSE GOSUB 59870 : _
ZOutTxt$ = ZMorePrompt$ + Temp$ + ExtraPrompt$ + LEFT$(">",-ZExpertUser)
WasX = LEN(ZOutTxt$) + 2
ZNoAdvance = OverWrite
ZSubParm = 1
IF ExtraPrompt$ = "" AND ZTurboKey = 0 THEN _
ZTurboKey = -ZTurboKeyUser
ZMacroMin = 2
CALL TGet
IF ZSubParm = -1 THEN _
EXIT SUB
ZTurboKey = ZFalse
ZWasDF$ = ZUserIn$ (1)
CALL AllCaps (ZWasDF$)
WasI = INSTR(";C;A;",";"+ZWasDF$+";")
IF WasI = 1 THEN _
ZNonStop = ZTrue : _
ZWasQ = 0
CALL WipeLine (WasX + LEN(ZUserIn$))
IF NOT ZHiLiteOff THEN _
CALL QuickTPut (ZLastSmartColor$,0) : _ 'Pe 08/26/92
CALL QuickTput (ZEmphaSizeOFF$,0) 'Lk 07/16/90
IF CantInterrupt THEN _
ZNo = ZFalse : _
EXIT SUB
IF WasI = 3 THEN _
ZLastIndex = 0 : _
AbortIndex = 32000
IF ZNo THEN _
ZKeyboardStack$ = "" : _
ZCommPortStack$ = "" : _
ZLastSmartColor$ = ""
IF NOT ZJumpSupported THEN _
EXIT SUB
IF ZWasDF$ = "J" THEN _
IF ZWasQ > 1 THEN _
ZUserIn$ = ZUserIn$(2) : _
GOTO 59866 _
ELSE Call GetRBBSString(303,RBBSString$) : _ 'Pe 01/16/93
ZOutTxt$ = RBBSString$ + ZPressEnterExpert$ : _
CALL PopCmdStack : _
IF ZWasQ = 0 THEN _
EXIT SUB _
ELSE GOTO 59866
IF ZWasDF$ <> "R" THEN _
EXIT SUB
ZUserIn$ = ZJumpLast$
* REPLACING old line(s) by new
59921 Strng$ = ZDR1$ + LEFT$(Strng$,13) + ZDR2$ + MID$(Strng$,14,10) + _
* ------[ first line different ]------
ZDR3$ + MID$(Strng$,24,10) + ZDR4$ + MID$(Strng$,34,ZMaxDescLen) + _
ZEmphasizeoff$ 'Pe 03/15/92
EXIT SUB
* REPLACING old line(s) by new
59934 ' $SUBTITLE: 'SetHiLite - subroutine to reset highlight preference'
' $PAGE
'
' NAME -- SetHiLite
'
' INPUTS -- PARAMETER MEANING
' SetTo New value (True or False)
' ZEmphasizeOnDef$ String turns emphasize on
' ZEmphasizeOffDef$ String turns emphasize off
'
' OUTPUTS -- ZHiLiteOff Callers preference on Hilite
' ZEmphasizeOn$ String to use for emphasis
' ZEmphasizeOff$ String to use after emphasis
'
SUB SetHiLite (SetTo) STATIC
ZHiLiteOff = (ZEmphasizeOnDef$ <> "" AND SetTo)
IF ZHiLiteOff THEN _
ZEmphasizeOn$ = "" : _
ZEmphasizeOff$ = "" : _
ZFG1$ = "" : _
ZFG2$ = "" : _
ZFG3$ = "" : _
* ------[ first line different ]------
ZFG4$ = "" : _ ' DD061303/COLR
ZFG5$ = "" : _ ' DD061303/COLR
ZFG6$ = "" : _ ' DD061303/COLR
ZFG7$ = "" : _ ' DD061303/COLR
ZFG8$ = "" : _ ' DD061303/COLR
ZFG9$ = "" : _ ' DD061303/COLR
ZFGA$ = "" : _ ' DD061303/COLR
ZFGB$ = "" : _ ' DD061303/COLR
ZFGC$ = "" : _ ' DD061303/COLR
ZFGD$ = "" : _ ' DD061303/COLR
ZFGE$ = "" : _ ' DD072201/COLR
ZFGF$ = "" _ ' DD072201/COLR
ELSE ZEmphasizeOn$ = ZEmphasizeOnDef$ : _
ZFG1$ = ZFG1Def$ : _
ZFG2$ = ZFG2Def$ : _
ZFG3$ = ZFG3Def$ : _
ZFG4$ = ZFG4Def$ : _ ' DD061303/COLR
ZFG5$ = ZEscape$ + "[1;34;40m" : _ 'Brt Blue ' DD061303/COLR
ZFG6$ = ZEscape$ + "[1;35;40m" : _ 'Brt Magenta ' DD061303/COLR
ZFG7$ = ZEscape$ + "[1;33;44m" : _ 'Yellow/Blue ' DD061303/COLR
ZFG8$ = ZEscape$ + "[1;33;42m" : _ 'Yellow/Green ' DD061303/COLR
ZFG9$ = ZEscape$ + "[1;33;41m" : _ 'Yellow/Red ' DD061303/COLR
ZFGA$ = ZEscape$ + "[1;33;45m" : _ 'Yellow/Magenta ' DD061303/COLR
ZFGB$ = ZEscape$ + "[1;37;44m" : _ 'White/Blue ' DD061303/COLR
ZFGC$ = ZEscape$ + "[1;37;42m" : _ 'White/Green ' DD061303/COLR
ZFGD$ = ZEscape$ + "[1;37;41m" : _ 'White/Red ' DD061303/COLR
ZFGE$ = ZEscape$ + "[1;37;45m" : _ 'White/Magenta ' DD061303/COLR
ZFGF$ = ZEscape$ + "[1;36;44m" 'Brt Cyan/Blue ' DD061303/COLR
END SUB
* REPLACING old line(s) by new
59940 ' $SUBTITLE: 'ColorPrompt - subroutine to colorize prompts'
' $PAGE
'
' NAME -- ColorPrompt
'
' INPUTS -- PARAMETER MEANING
' Strng$ String to colorize
' ZHiLiteOff Whether highlighting is off
' ZEmphasizeOn$ String to use for emphasis
' ZEmphasizeOff$ String to use after emphasis
'
' OUTPUTS -- Strng$ Colorized string
'
' PURPOSE -- colorizes a string based on sysop settings
' and the string.
' [...] is the default - put in emphasis
' <...> options to type - put in ZFG4$
' and first two preceeding words use ZFG1$ and ZFG2$
' options identified on right by ) and on
' left by space or comma - put in ZFG4$
'
SUB ColorPrompt (Strng$) STATIC
* ------[ first line different ]------
CALL SmartText(Strng$,ZTrue,ZFalse,ZFalse) 'Pe 02/06/93
IF ZHiLiteOff THEN _
EXIT SUB
AlreadyColorized = (INSTR(Strng$,ZEscape$) > 0)
WasX = INSTR(Strng$,"<")
IF WasX > 0 THEN _
GOTO 59943
WasX = INSTR(Strng$,"[") ' highlight default
IF WasX > 0 THEN _
WasY = INSTR(WasX,Strng$,"]") : _
IF WasY > 0 THEN _
CALL FindLast (LEFT$(Strng$,WasY),"[",WasX,Temp) : _
CALL Bracket (Strng$,WasX,WasY,ZEmphasizeOn$,ZEmphasizeOff$)
IF AlreadyColorized THEN _
EXIT SUB
WasX = INSTR(Strng$,"<")
IF WasX < 1 THEN _
GOTO 59945
* REPLACING old line(s) by new
59965 ' $SUBTITLE: 'UserColor - lets user set color for normal text'
' $PAGE
'
' NAME -- UserColor
'
' INPUTS -- PARAMETER MEANING
' ZEmphasizeOff$ Normal text color
'
' OUTPUTS -- ZEmphasizeOff$ New text color
' ZBoldText$ Whether bold (0 not, 1 bold)
' ZUserTextColor ANSI Color selected
'
' PURPOSE -- Lets caller select desired color and whether bold.
'
SUB UserColor STATIC
IF ZHiLiteOff THEN _
* ------[ first line different ]------
EXIT SUB _ ' DD061303/COLR
ELSE _ ' DD061303/COLR
ZFG5$ = ZEscape$ + "[1;34;40m" : _ 'Brt Blue ' DD061303/COLR
ZFG6$ = ZEscape$ + "[1;35;40m" : _ 'Brt Magenta ' DD061303/COLR
ZFG7$ = ZEscape$ + "[1;33;44m" : _ 'Yellow/Blue ' DD061303/COLR
ZFG8$ = ZEscape$ + "[1;33;42m" : _ 'Yellow/Green ' DD061303/COLR
ZFG9$ = ZEscape$ + "[1;33;41m" : _ 'Yellow/Red ' DD061303/COLR
ZFGA$ = ZEscape$ + "[1;33;45m" : _ 'Yellow/Magenta ' DD061303/COLR
ZFGB$ = ZEscape$ + "[1;37;44m" : _ 'White/Blue ' DD061303/COLR
ZFGC$ = ZEscape$ + "[1;37;42m" : _ 'White/Green ' DD061303/COLR
ZFGD$ = ZEscape$ + "[1;37;41m" : _ 'White/Red ' DD061303/COLR
ZFGE$ = ZEscape$ + "[1;37;45m" : _ 'White/Magenta ' DD061303/COLR
ZFGF$ = ZEscape$ + "[1;36;44m" 'Brt Cyan/Blue ' DD061303/COLR
* REPLACING old line(s) by new
59970 CALL QuickTPut (ZEmphasizeOff$,0)
* ------[ first line different ]------
Call GetRBBSString(142,RBBSString$) 'Pe 01/16/93
OutTxt$ = RBBSString$ 'Pe 01/16/93
ZOutTxt$ = OutTxt$ + ZPressEnterExpert$
GOSUB 59973
IF ZWasQ = 0 THEN _
ZEmphasizeOff$ = ZEscape$ + "[" + ZBoldText$ + _
";40;" + MID$(STR$(ZUserTextColor),2) + "m" : _
EXIT SUB
CALL AllCaps (ZUserIn$)
WasX = INSTR("RGYBPCW",ZUserIn$)
IF WasX = 0 THEN _
GOTO 59970
ZUserTextColor = 30 + WasX
ZOutTxt$ = "Make text Bright (Y,[N])"
GOSUB 59973
ZBoldText$ = CHR$(48 - ZYes)
ZEmphasizeOff$ = ZEscape$ + "[" + ZBoldText$ + ";40;" + MID$(STR$(ZUserTextColor),2) + "m"
GOTO 59970
* REPLACING old line(s) by new
* ------[ first line different ]------
59973 ZSubParm = 1
ZTurboKey = -ZTurboKeyUser
CALL TGet
IF ZSubParm = -1 THEN _
EXIT SUB
RETURN
END SUB
* REPLACING old line(s) by new
59980 ' $SUBTITLE: 'SetGraphic - Sets user graphic preference'
' $PAGE
'
' NAME -- SetGraphic
'
' INPUTS -- PARAMETER MEANING
' GraphicsNumber 0=None, 1=Ascii, 2=color
'
' OUTPUTS -- ZWasGR Shared var - set to
' graphics.number
' ZUserGraphicDefault$ What add to file name to
' see if got graphics file ver
'
' PURPOSE -- Sets file graphics preference
'
SUB SetGraphic (GraphicsNumber) STATIC
ZWasGR = GraphicsNumber
IF ZWasGR = 2 THEN _
ZDR1$ = ZFG1Def$ : _
ZDR2$ = ZFG2Def$ : _
ZDR3$ = ZFG3Def$ : _
* ------[ first line different ]------
ZDR4$ = ZFG4Def$ : _ ' DD061303/COLR
ZDR5$ = ZFG5$ : _ ' DD061303/COLR
ZDR6$ = ZFG6$ : _ ' DD061303/COLR
ZDR7$ = ZFG7$ : _ ' DD061303/COLR
ZDR8$ = ZFG8$ : _ ' DD061303/COLR
ZDR9$ = ZFG9$ : _ ' DD061303/COLR
ZDRA$ = ZFGA$ : _ ' DD061303/COLR
ZDRB$ = ZFGB$ : _ ' DD061303/COLR
ZDRC$ = ZFGC$ : _ ' DD061303/COLR
ZDRD$ = ZFGD$ : _ ' DD061303/COLR
ZDRE$ = ZFGE$ : _ ' DD061303/COLR
ZDRF$ = ZFGF$ _ ' DD061303/COLR
ELSE ZDR1$ = "" : _
ZDR2$ = "" : _
ZDR3$ = "" : _
ZDR4$ = "" : _ ' DD061303/COLR
ZDR5$ = "" : _ ' DD061303/COLR
ZDR6$ = "" : _ ' DD061303/COLR
ZDR7$ = "" : _ ' DD061303/COLR
ZDR8$ = "" : _ ' DD061303/COLR
ZDR9$ = "" : _ ' DD061303/COLR
ZDRA$ = "" : _ ' DD061303/COLR
ZDRB$ = "" : _ ' DD061303/COLR
ZDRC$ = "" : _ ' DD061303/COLR
ZDRD$ = "" : _ ' DD061303/COLR
ZDRE$ = "" : _ ' DD061303/COLR
ZDRF$ = "" ' DD061303/COLR
ZUserGraphicDefault$ = MID$(" GC",ZWasGR+1, - (ZWasGR > 0))
END SUB
* REPLACING old line(s) by new
60130 ' $SUBTITLE: 'MetaGSR -- Meta Global search and replace'
' $PAGE
'
' NAME -- MetaGSR
'
' INPUTS -- PARAMETER MEANING
' Strng$ String to edit
'
' OUTPUTS -- Strng$ Edited string
'
' PURPOSE -- Global search and replace for meta variables
'
* ------[ first line different ]------
' DSZ port [PORT#] speed [BAUD] estimate 0 [CBAUD] ha on sz -r [FILE]
'
' RBBS will substitute the variable [CBAUD] with the actual modem speed.
'
SUB MetaGSR (Strng$,OverStrike) STATIC
WasY = 1
* REPLACING old line(s) by new
60135 MetaVal$ = MID$(Strng$,WasX+1,WasY-WasX-1)
* ------[ first line different ]------
WasI = INSTR(" BAUD CBAUD PORT PORT# PARITYPROTO NODE FILE ",MetaVal$) ' KG122301
IF WasI = 0 OR LEN(MetaVal$) < 4 THEN _
WasY = WasX + 1 : _
GOTO 60131
WasJ = (WasI-1)\6 + 1
WasK = (WasI+4)\6 + 1
IF WasK > WasJ THEN _
EXIT SUB
ON WasJ GOTO 60155, _
60137, _
60138, _
60139, _
60141, _
60143, _
60145, _
60147, _
60149, _
60151
* REPLACING old line(s) by new
* ------[ first line different ]------
60149 IF ZWasBatchTransfer THEN _ 'Pe BatchUp Mod
CALL BreakFileName (ZFileName$,Drive$,Prefix$,Ext$,ZFalse) : _
WorkHold$ = Drive$+"\" _ 'Pe 12/30/92
ELSE _
IF ZBatchTransfer THEN _
WorkHold$ = "@" + ZNodeWorkFile$ _
ELSE WorkHold$ = ZFileName$
GOTO 60151
* REPLACING old line(s) by new
60180 ' $SUBTITLE: 'TimeLock - Test TIME LOCK for premium features'
' $PAGE
'
' NAME -- TimeLock (written by Doug Azzarito)
'
' INPUTS -- PARAMETER MEANING
' ZTimeLockSet SECONDS/SESSION TO LOCK
'
' OUTPUTS -- ZSubParm -1 if feature is LOCKED
'
' PURPOSE -- Check elapsed time for lock duration
'
SUB TimeLock STATIC
CALL TimeRemain(MinsRemaining)
IF ZSecsUsedSession! >= ZTimeLockSet THEN _
ZOK = ZTrue : _
EXIT SUB
ZOutTxt$ = ZFirstName$
CALL NameCaps(ZOutTxt$)
CALL QuickTPut1 ("Sorry, " + ZOutTxt$ + ", function locked" + _
* ------[ first line different ]------
STR$(INT((ZTimeLockSet-ZSecsUsedSession!)/60)) + _
" more minutes" + _
STR$(INT(ZTimeLockSet-ZSecsUsedSession!) MOD 60) + " seconds")
CALL BufFile(ZHelpPath$+"TIMELOCK"+ZHelpExtension$,WasX)
ZOK = ZFalse
ZLastIndex = 0
END SUB
* REPLACING old line(s) by new
60200 ' $SUBTITLE: 'MarkTime - Give feedback for lengthy processes'
' $PAGE
'
' NAME -- MarkTime
'
' INPUTS -- PARAMETER MEANING
' DotNumber How many dots printed
'
' OUTPUTS -- DotNumber
'
' PURPOSE -- Marks time by putting colorized dots out
' to 4, then erasing
'
SUB MarkTime (DotNumber) STATIC
TimeNow! = TIMER
* ------[ first line different ]------
IF TimeNow! - PrevTI! < 0.60 THEN _ ' DD090901
EXIT SUB
PrevTI! = TimeNow!
IF RemoveDot AND DotNumber > 0 THEN _
CALL QuickTPut (ZBackSpace$,0) : _
DotNumber = DotNumber - 1 : _
EXIT SUB
DotNumber = DotNumber + 1
ON DotNumber GOTO 60201,60202,60203,60204
* REPLACING old line(s) by new
60300 ' $SUBTITLE: 'AutoPage - NOTIFIES ZSysop WHEN SPECIFIC USER CALLS'
' $PAGE
'
' NAME -- AutoPage 'Contributed by Gregg and Bob Snyder
' 'and RoseMarie Siddiqui
'
' INPUTS -- ZAutoPageDef$ List of conditions that trigger
' notification and how
'
' OUTPUTS -- NONE
'
' PURPOSE -- Search ZAutoPageDef$ for match on whether
' on name, security level, whether new user.
' Also controls whether caller notified and
' number of times sysop has bell rung.
' And what tune to play (if any).
'
SUB AutoPage STATIC
CALL FindIt (ZAutoPageDef$)
IF NOT ZOK THEN _
EXIT SUB
ZErrCode = 0
ZOK = ZFalse
WHILE NOT EOF(2) AND ZOK = ZFalse AND ZErrCode = 0
CALL ReadParms (ZWorkAra$(),4,1)
IF ZErrCode = 0 THEN _
ZOK = (ZWorkAra$(1) = ZActiveUserName$) : _
IF NOT ZOK THEN _
IF ZNewUser AND ZWorkAra$(1) = "NEWUSER" THEN _
ZOK = ZTrue _
ELSE IF LEFT$(ZWorkAra$(1),1) = "/" AND LEN(ZWorkAra$(1)) > 2 THEN _
ZWasB = INSTR (2,ZWorkAra$(1),"/") : _
IF ZWasB > 0 AND LEN(ZWorkAra$(1)) > ZWasB THEN _
IF ZUserSecLevel <= VAL(MID$(ZWorkAra$(1),ZWasB+1)) AND _
ZUserSecLevel >= VAL(MID$(ZWorkAra$(1),2)) THEN _
ZOK = ZTrue
WEND
CLOSE 2
IF ZErrCode > 0 OR NOT ZOK THEN _
ZErrCode = 0 : _
EXIT SUB
ZPageStatus$ = "AP!"
IF LEFT$(ZWorkAra$(2),1) = "N" THEN _
ZOutTxt$ = "Telling sysop you're on..." : _
CALL RingCaller
ZWasB = (ZWorkAra$(4) = "")
ZWorkAra$(5) = ""
TempSnoop = ZSnoop
ZSnoop = ZTrue
CALL Line25
FOR WasI = 1 TO VAL(ZWorkAra$(3))
IF ZWasB THEN _
CALL LPrnt (ZBellRinger$,0) : _
ELSE ZWorkAra$(5) = ZWorkAra$(5) + "O4 X" + VARPTR$(ZWorkAra$(4))
NEXT
* ------[ first line different ]------
ZSnoop = TempSnoop
END SUB
* REPLACING old line(s) by new
62540 ' $SUBTITLE: 'RptTime -- Reports time on system'
' $PAGE
'
' NAME -- RptTime
'
' INPUTS -- PARAMETER MEANING
'
' OUTPUTS --
'
' PURPOSE -- Tells user time used on system
'
SUB RptTime STATIC
CALL SkipLine (1)
CALL GetTime
CALL AMorPM
Mins = (ZSessionHour * 60) + ZSessionMin
CALL Carrier
IF ZSubParm = -1 THEN _
EXIT SUB
CALL QuickTPut1 ("Now: " + DATE$ + " at " + TIME$)
CALL QuickTPut1 ("On for" + STR$(Mins) + " mins," + _
STR$(ZSessionSec) + " secs")
* ------[ first line different ]------
END SUB
* REPLACING old line(s) by new
62605 IF LEFT$(ZTransferOption$,1) = "," THEN _
ZTransferOption$ = MID$(ZTransferOption$,2)
IF INSTR(ZDefaultXfer$,ZUserXferDefault$) = 0 THEN _
* ------[ first line different ]------
Call GetRBBSString(143,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut1 ("Protocol "+ZUserXferDefault$+OutTxt$) : _
ZUserXferDefault$ = MID$(ZDefaultXfer$,INSTR(ZInternalEquiv$,"N"),1)
END SUB
* REPLACING old line(s) by new
62620 ' $SUBTITLE: 'Transfer - Subroutine for external protocols'
' $PAGE
'
' NAME -- Transfer
'
' INPUTS -- PARAMETER MEANING
' ZTransferFunction = 1 DOWNLOAD FILE TO USER
' = 2 UPLOAD FILE TO RBBS-PC
' ZFileName$ NAME OF FILE FOR Transfer
' ZComPort$ NAME OF COMMUNICATIONS PORT
' TO BE USED BY KERMIT (COM1
' OR COM2)
' ZBPS = -1 FOR 300 BAUD
' = -2 FOR 450 BAUD
' = -3 FOR 1200 BAUD
' = -4 FOR 2400 BAUD
' = -5 FOR 4800 BAUD
' = -6 FOR 9600 BAUD
* ------[ first line different ]------
' = -7 FOR 14400 BAUD
' = -8 FOR 19200 BAUD
'
' OUTPUTS -- NONE
'
' PURPOSE -- To transfer files using external protocols
'
SUB Transfer STATIC
IF ZUpBatchTransfer Then _
Exit Sub
IF ZPrivateDoor THEN _
CALL PrivDoorRtn : _
EXIT SUB
IF ZTransferFunction = 1 THEN _
ZUserIn$ = ZDownTemplate$ : _
ZWasZ$ = "send " _
ELSE IF ZTransferFunction = 2 THEN _
ZUserIn$ = ZUpTemplate$ : _
ZWasZ$ = "receive "
CALL MetaGSR (ZUserIn$,ZFalse)
CALL QuickTPut1 ("Protocol : "+ZProtoPrompt$)
CALL QuickTPut ("Ready to " + ZWasZ$ + " ",0)
'
IF ZBatchTransfer or ZWasBatchTransfer THEN _ 'Pe BatchUp mod
CALL QuickTPut1 ("(BATCH)") _
ELSE CALL QuickTPut1 (ZFileNameHold$)
'
IF ZWasBatchTransfer THEN _ 'Pe BatchUp mod
Temp$ = ZBatchWorkFile$ _
ELSE IF ZBatchTransfer Then _
Temp$ = ZNodeWorkFile$
IF ZBatchTransfer or ZWasBatchTransfer THEN _ 'Pe BatchUp mod
CALL OpenWork (2,Temp$) : _
WHILE NOT EOF(2) : _
CALL ReadAny : _
CALL BreakFileName (ZOutTxt$,ZWasZ$,ZWasY$,WasX$,ZTrue) : _
CALL QuickTPut1 (" "+ZWasY$+WasX$) : _
WEND
'
IF ZAutoEnd = 1 THEN _ 'Pe 03/30/92
Call GetRBBSString(69,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$)
CALL PrivDoorRtn
END SUB
* REPLACING old line(s) by new
62628 WasX$ = LEFT$(ZUserIn$,INSTR(ZUserIn$+" "," ")-1)
IF WasX$ = "" THEN _
EXIT SUB
CALL FindIt (WasX$)
IF NOT ZOK THEN _
ZOutTxt$ = "Missing door program" : _
CALL UpdtCalr (ZOutTxt$ + " " + WasX$,1) : _
ZSnoop = ZTrue : _
CALL LPrnt (ZOutTxt$,1) : _
EXIT SUB
ZOutTxt$(1) = "CLS"
GOSUB 62633
* ------[ first line different ]------
ZOutTxt$(2) = "ECHO " + ZOutTxt$
ZOutTxt$(3) = ZDiskForDos$ + _
"COMMAND /C " + _
ZUserIn$
ZOutTxt$(4) = ZRBBSBat$
ZPrivateDoor = ZTrue
Call GetRBBSString(144,RBBSString$) 'Pe 01/16/93
OutTxt$ = RBBSString$ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$)
LOCATE 25,1
CALL LPrnt(ZLineFeed$,0)
CALL DoorInfo
CALL RBBSExit (ZOutTxt$(),4)
* REPLACING old line(s) by new
62629 GOSUB 62633
* ------[ first line different ]------
'CLS
CALL LPrnt (ZOutTxt$,1)
CALL ShellExit (ZUserIn$)
* REPLACING old line(s) by new
62630 IF ZPrivateDoor THEN _
CALL RestoreCom : _
CALL DelayTime (7 + ZBPS) : _
CALL SetBaud : _
* ------[ first line different ]------
Call GetRBBSString(145,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$)
* REPLACING old line(s) by new
* ------[ first line different ]------
62633 IF ZTransferFunction = 1 THEN _ 'Pe 06/19/92
ZOutTxt$ = STR$(ZUserSecLevel) + _
" " + _
ZActiveUserName$ + _
" " + _
ZWasCI$ + ZCrlF$ : _
ZOutTxt$ = ZOutTxt$ + "ECHO Downloading " +STR$(ZBytesInFile#) + _ 'Pe 10/11/91
" bytes" + _ 'Pe 10/11/91
" At "+ STR$(ZBaudTest!) + " Bps" + _
" Time:" + _
STR$(INT(ZBlocksInFile# / 60)) + _
" min," + _
STR$(INT(ZBlocksInFile# - (INT(ZBlocksInFile# / 60) * 60))) + _
" sec (approx)"_ 'Pe 10/11/91
Else ZOutTxt$ = "Uploading file"+ _ 'Pe 06/19/92
" At "+ STR$(ZBaudTest!) + " Bps" 'Pe 06/19/92
RETURN
END SUB
* REPLACING old line(s) by new
62660 ' $SUBTITLE: 'SetExpert - subroutine to adjust for expert change'
' $PAGE
'
' NAME -- SetExpert
'
' INPUTS -- PARAMETER MEANING
' ZExpertUser WHETHER IS AN EXPERT
'
' OUTPUTS -- ZMorePrompt$ Pause prompt
' ZPressEnter$ Prompt to press enter
'
' PURPOSE -- Make more helpful prompt for novices and shorter
' one for experts
'
SUB SetExpert STATIC
IF ZExpertUser THEN _
* ------[ first line different ]------
ZMorePrompt$ = "More <[Y],N,A" : _
ZPressEnter$ = ZPressEnterExpert$ : _
EXIT SUB
ZMorePrompt$ = "More [Y]es,N)o,A)bort"
ZPressEnter$ = ZPressEnterNovice$
END SUB
* REPLACING old line(s) by new
62670 ZOutTxt$ = Prompt$
* ------[ first line different ]------
ZHidden = ZTrue
CALL PopCmdStack
ZHidden = ZFalse
IF ZSubParm < 0 OR ZWasQ = 0 THEN _
EXIT SUB
IF LEN(ZUserIn$) > 15 THEN _
Call GetRBBSString(75,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut1 ("15" + OutTxt$) : _
GOTO 62670
IF INSTR(ZUserIn$,";") > 0 THEN _
Call GetRBBSString(146,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$) : _
GOTO 62670
IF NOT ZSYSOP Then ' Pe 04/16/92
IF INSTR(ZUserIn$," ") > 0 THEN _ 'lk 022792
Call GetRBBSString(147,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$) : _
GOTO 62670 'lk 022792
End If 'Pe 04/16/92
IF DisallowSpaces THEN _
IF ZUserIn$ = SPACE$(LEN(ZUserIn$)) THEN _
Call GetRBBSString(148,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$) : _
GOTO 62670
CALL AllCaps (ZUserIn$)
ZWasZ$ = ZUserIn$
END SUB
* REPLACING old line(s) by new
64005 ZChatAvail = ZFalse
QestChain = ZFalse
LastQues = 0
CALL Graphic (ZFileName$)
IF NOT ZOK THEN _
EXIT SUB
CALL ReadParms (ZOutTxt$(),2,1)
IF ZErrCode > 0 THEN _
EXIT SUB
PrevAppend$ = AppendFileName$
AppendFileName$ = ZOutTxt$(1)
MaxSecLevel = VAL(ZOutTxt$(2))
WasX = INSTR(ZOutTxt$(2)," ")
IF WasX > 0 THEN _
IF ZUserSecLevel < VAL(MID$(ZOutTxt$(2),WasX)) THEN _
* ------[ first line different ]------
Call GetRBBSString(149,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
CALL QuickTPut1 (OutTxt$) : _
EXIT SUB
'
'
' * THE First RECORD OF THE SCRIPT FILE CONTAINS THREE PARAMETERS:
' * 1. THE NAME OF THE FILE TO APPEND THE ANSWERS TO.
' * 2. THE MAXIMUM SECURITY LEVEL THE + COMMAND CAN RAISE A USER SECURITY
' * 3. THE MINIMUM SECURITY TO USE THIS QUESTIONNAIRE
' * e.g. 'C:XXX.DAT,6 5' writes answers to C:XXX.DAT, can raise to 6,
' * and requires security 5 or more to access
ScriptIndex = 1
ZOutTxt$(ScriptIndex) = ZActiveUserName$ + _
" " + _
DATE$ + _
" " + _
TIME$
* REPLACING old line(s) by new
64110 CALL Carrier
IF ZSubParm = -1 THEN _
GOTO 64510
ScriptIndex = ScriptIndex + 1
IF ScriptIndex > ScriptMax THEN _
GOTO 64400
ZOutTxt$ = MID$(ZOutTxt$(ScriptIndex),2)
WasX = ZFalse
IF LEFT$(ZOutTxt$,3) = "/FL" THEN _
ZOutTxt$ = RIGHT$(ZOutTxt$,LEN(ZOutTxt$)-3) : _
WasX = ZTrue
CALL MetaGSR (ZOutTxt$,WasX)
* ------[ first line different ]------
CALL SmartText (ZOutTxt$,ZFalse,WasX,ZFalse) ' Pe 02/05/93
WasX$ = ZOutTxt$
ON INSTR(" :!@MT><*?=-+&",LEFT$(ZOutTxt$(ScriptIndex),1)) GOTO _
64111, _ ' catch invalid lines
64110, _ ' : label
64110, _ ' ! stored answer
64420, _ ' @ abort
64120, _ ' M macro execute
64430, _ ' T turbo key
64440, _ ' > goto label
64190, _ ' < assign value
64450, _ ' * display line
64113, _ ' ? prompt for answer
64114, _ ' = conditional branch
64460, _ ' - decrease security level
64465, _ ' + increase security level
64470 ' & chain
* REPLACING old line(s) by new
* ------[ first line different ]------
64111 Call GetRBBSString(151,RBBSString$) 'Pe 01/16/93
OutTxt$ = RBBSString$ 'Pe 01/16/93
ZOutTxt$ = OutTxt$ + LEFT$(ZOutTxt$(ScriptIndex),1)
Call GetRBBSString(152,RBBSString$) 'Pe 01/16/93
OutTxt$ = RBBSString$ 'Pe 01/16/93
ZOutTxt$ = ZOutTxt$ + OutTxt$
ZSubParm = 5
CALL TPut
GOTO 64510
* REPLACING old line(s) by new
64200 ScriptIndex = 1
CALL MetaGSR (BranchLabel$,ZFalse)
* ------[ first line different ]------
CALL SmartText (BranchLabel$,ZFalse,ZFalse,ZFalse) 'Pe 02/06/93
CALL AllCaps (BranchLabel$)
CALL Trim (BranchLabel$)
* REPLACING old line(s) by new
64400 ScriptIndex = 0
ZWasEN$ = AppendFileName$
CALL LockAppend
IF ZErrCode <> 0 THEN _
* ------[ first line different ]------
Call GetRBBSString(153,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
ZOutTxt$ = OutTxt$ : _
ZSubParm = 5 : _
CALL TPut : _
GOTO 64500
* REPLACING old line(s) by new
64410 ScriptIndex = ScriptIndex + 1
IF ScriptIndex > ScriptMax THEN _
GOTO 64500
IF LEFT$(ZOutTxt$(ScriptIndex),1) = ":" THEN _
QuestionSave$ = MID$(ZOutTxt$(ScriptIndex),2) : _
GOTO 64410
IF LEFT$(ZOutTxt$(ScriptIndex),1) = "!" AND _
LEN(ZOutTxt$(ScriptIndex)) < 2 THEN _
GOTO 64410
IF LEFT$(ZOutTxt$(ScriptIndex),1) = "!" THEN _
CALL PrintWorkA (QuestionSave$) : _
CALL PrintWorkA (MID$(ZOutTxt$(ScriptIndex),2))
IF ScriptIndex = 1 AND _
AppendFileName$ <> PrevAppend$ THEN _
CALL PrintWorkA (ZOutTxt$(ScriptIndex))
IF ZErrCode <> 0 THEN _
* ------[ first line different ]------
Call GetRBBSString(154,RBBSString$) : _ 'Pe 01/16/93
OutTxt$ = RBBSString$ : _ 'Pe 01/16/93
ZOutTxt$ = OutTxt$ : _
ZSubParm = 5 : _
CALL TPut : _
GOTO 64500
GOTO 64410
* REPLACING old line(s) by new
64510 ZChatAvail = (INSTR("MUF",ZActiveMenu$) > 0)
ZOK = ZTrue
ZLastIndex = 0
END SUB
* ------[ first line different ]------
' ViewArc Subroutine.... deleted
* DELETING old line(s)
64600
64605
64610
64620
64630
* REPLACING old line(s) by new
64636 IF ZAnsIndex < ZLastIndex THEN _
GOTO 64638
* ------[ first line different ]------
Call GetRBBSString(155,RBBSString$) 'Pe 01/16/93
ZOutTxt$ = RBBSString$ 'Pe 01/16/93
CALL TopPrompt
Call GetRBBSString(156,RBBSString$) 'Pe 01/16/93
ZOutTxt$ = RBBSString$ 'Pe 01/16/93
Call TopPrompt
Call GetRBBSString(157,RBBSString$) 'Pe 01/16/93
ZOutTxt$ = RBBSString$ 'Pe 01/16/93
CALL TopPrompt
Call GetRBBSString(158,RBBSString$) 'Pe 01/16/93
ZOutTxt$ = RBBSString$ + ZPressEnter$
CALL ColorPrompt (ZOutTxt$)
* REPLACING old line(s) by new
64638 ZStackC = ZTrue
ZTurboKey = -ZTurboKeyUser
CALL PopCmdStack
IF ZWasQ=0 OR ZSubParm < 0 THEN _
EXIT SUB
ZWasZ$ = ZUserIn$(ZAnsIndex)
CALL AllCaps (ZWasZ$)
* ------[ first line different ]------
ZFF = INSTR("ABCFHLNTX!I",ZWasZ$) 'RChat
IF ZFF < 1 THEN _
GOTO 64636
CALL Toggle (ZFF)
GOTO 64636
END SUB
SUB TopPrompt STATIC
CALL ColorPrompt (ZOutTxt$)
CALL QuickTPut1 (ZOutTxt$)
END SUB
'
* REPLACING old line(s) by new
64640 ' * SysOp function 5 - change xfer stats
SUB CmndSysOpXfer STATIC
* ------[ first line different ]------
Call GetRBBSString(150,RBBSString$) 'Pe 01/16/93
OutTxt$ = RBBSString$
CALL QuickTPut1 (OutTxt$)
ZOutTxt$ = "Upload file total"
GOSUB 64642
IF LEN(ZUserIn$(1)) > 0 THEN _
LSET ZUserUplds$ = MKI$(VAL(ZUserIn$(1)))
ZOutTxt$ = "Upload byte total"
GOSUB 64642
IF LEN(ZUserIn$(1)) > 0 THEN _
LSET ZULBytes$ = MKS$(VAL(ZUserIn$(1)))
ZOutTxt$ = "Download file total"
GOSUB 64642
IF LEN(ZUserIn$(1)) > 0 THEN _
LSET ZUserDnlds$ = MKI$(VAL(ZUserIn$(1)))
ZOutTxt$ = "Download byte total"
GOSUB 64642
IF LEN(ZUserIn$(1)) > 0 THEN _
LSET ZDlBytes$ = MKS$(VAL(ZUserIn$(1)))
ZOutTxt$ = "Files downloaded TODAY"
GOSUB 64642
IF LEN(ZUserIn$(1)) > 0 THEN _
LSET ZTodayDl$ = MKS$(VAL(ZUserIn$(1)))
ZOutTxt$ = "Bytes downloaded TODAY"
GOSUB 64642
IF LEN(ZUserIn$(1)) > 0 THEN _
LSET ZTodayBytes$ = MKS$(VAL(ZUserIn$(1)))
EXIT SUB